1. Field of the Invention
The present invention relates to image forming apparatuses that expand an intermediate code (e.g. a display list) to bitmap data and compress the bitmap data.
2. Description of the Related Art
Page printers tend to require larger memory size and longer processing time due to higher resolutions. Consequently, it is required to suppress memory size increase and to process at higher speed without complex software configuration in order to supply high-speed page printers at low price and shorten product development terms.
In a technique described in Japan Laid-Open Patent Application H04-088749, to reduce required memory size, one page of print data described in page description language is divided into blocks (e.g. 512 blocks), each block is transformed to an intermediate code and rasterized to generate bitmap data, and then the bitmap data are stored in a memory after the bitmap data are compressed. Further, in order to handle overlap of drawing objects, compressed data are decompressed, the decompressed bitmap data are synthesized with bitmap data generated by rasterization, and the synthesized data are stored in a memory after the synthesized data are compressed.
However, as described in Japan Laid-Open Patent Application H09-214709, when a RIP (Raster Image Processor) unit expands data on a new block to bitmap data, the RIP unit waits for finishing the process that synthesized data are compressed and stored in a memory and the compressed data on the new block are decompressed, and consequently processing is delayed.
Therefore, in a technique described in Japan Laid-Open Patent Application H09-214709, the RIP unit continuously rasterizes blocks to generate bitmap data in turn, compresses the bitmap data and stores the compressed data in a hard disk drive instead of a memory; then after expansion of one page of the bitmap data, for each block, parts of compressed data to be synthesized are read from the hard disk drive and decompressed, decompressed parts are synthesized in turn, and the synthesized data are stored in the memory. In addition, in a technique described in Japan Laid-Open Patent Application H10-289066, to process at high speed, a plural of hardware RIPs operate in parallel.
In case of using object oriented language such as C++ and Java®, dynamic allocation and release of an area in a heap memory are performed by the system (i.e. runtime library). If a required size of memory area can not be allocated, the objects that have not been referred are released by garbage collection and a continuous vacant area is generated by performing compaction.
However, since it takes long time to copy objects in compaction due to a large size of the heap memory and application can not project when garbage collection is performed, processing may be delayed unexpectedly. Therefore, in a technique described in Japan Laid-Open Patent Application 2006-344184, in image forming apparatuses, to reduce influence to printing process, garbage collection is performed in waiting time of print data transmitted from external devices.